home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 1.iso
/
ARGONET
/
PD
/
SOUND
/
SOUNDCON.ZIP
/
!SoundCon
/
Docs
/
Formats
next >
Wrap
Text File
|
1995-08-31
|
13KB
|
327 lines
Description of formats supported by SoundCon
============================================
Rick Hudson, rick@actrix.gen.nz
Last updated on 31 August 1995
There are two general classes of sound sample formats, compressed and
uncompressed. Uncompressed samples are described relatively simply by the
number of channels, bits per sample and sample format. Compressed samples
are usually more complex; these are described later.
The sub-formats of each format is not described indivually because they are
simply providing you with a choice of standard sub-formats. The meanings of
the items found in the sub-menus (and the raw data interpretation menu) are
described here:
- Mono and stereo are for one and two channel samples. Note that stereo
samples must be interleaved in blocks of one (ie LRLRLRLR...). Formats
like AudioWorks (which interleaves in blocks of eight) can't be
interpreted as raw data by SoundCon and has special conversion code to
deal with that. One or two channels are supported for output conversion
and playback. Up to four are supported for conversion input.
- 8 and 16 bit is for bits per sample. This only applies to the linear
samples since µ-law and VIDC are defined as 8-bit formats. 12 bit
samples are not supported.
- Little and Big endian describes how to interpret 16-bit samples (or
any number stored in more than one byte). Little endian means the least
significant byte is stored first and Big endian means the most
significant byte is stored first. Little endian is the usual format for
formats originating from Arm and Intel based compuuters (eg Arc, PC) and
big endian is the usual format for formats originating from Motorola
based machines (eg Mac, Amiga).
- Signed linear samples are stored as 2's complement numbers (ie signed)
that are directly proportional to the instantaneous amplitude of the
sample (ie linear).
- Unsigned linear samples similar except that the maximum amplitude is
added to all samples (ie 128 for 8-bit, 32768 for 16-bit) to make all
the numbers positive (ie unsigned). In practise only the sign bit has to
be changed to convert from signed to unsigned.
- µ-law samples are logarithmic which gives them a better dynamic range
than linear samples. Linear samples usually need to be about 12 bits to
provide the same low-amplitude resolution as µ-law. This format is
common on Unix machines.
- A-law samples are a form of compression. 8-bit A-law compresses a 13-bit
linear sample by taking the 4 most significant bits from the 12-bit
magnitude and shifting them by 0-7 bits as defined by a further 3 bits.
The eighth bit is the sign. This gives A-law a good dynamic range with
few bits because it is essentially logarithmic.
- Arc VIDC is the internal format used by the sound system on the
Archimedes making it a logical way to store samples on the Arc. It's
very similar to µ-law.
Major format summaries
----------------------
Unless otherwise noted the PlaySample module used by SoundCon can play
samples that are any combination of:
- 8 or 16 bit
- mono or stereo
- linear signed, linear unsigned, mu-law, A-law or Arc VIDC
with the exception that 16 bits samples which can only be linear since
mu-law, A-law and Arc VIDC are not actually defined for anything other than
8-bit.
Playback lists use the following summaries:
- mono/stereo 8 (8-bit linear signed or unsigned)
- mono/stereo 16 (16-bit linear signed or unsigned)
- mono/stereo 8 slin (8-bit signed linear)
- mono/stereo 8 ulin (8-bit unsigned linear)
- mono/stereo 16 slin (16-bit signed linear)
- mono/stereo 16 ulin (16-bit unsigned linear)
- mono/stereo mu-law (8-bit mu-law)
- mono/stereo A-law (8-bit A-law)
- mono/stereo VIDC (8-bit Archimedes VIDC)
A summary like "mono/stereo 8/16" means all combinations are allowable, ie
"mono 8, stereo 8, mono 16, stereo 16".
The following major formats are supported by the current version of SoundCon.
Audio IFF
Armadeus
ARMovie
Sun Audio
Audioworks
Datavox
IFF/8SVX
Psion S3a
Raw data
VOC (Creative Voice)
Voice module (write only)
RIFF WAVE
Audio IFF
Audio IFF (Interchange File Format) is a standard 'chunked' file format
which supports a wide range of sound sub-formats. This format originated
on Apple computers so multi-byte numbers are big endian.
Channels: Any number of channels can be represented (in theory, up to
2^32). SoundCon can read up to 4 channels and write up to 2.
Bits: Anywhere from 1-32 bits per sample can be represented. SoundCon can
read from 1-24 bits and can write 8 or 16 bits.
Format: The format is always linear signed left justified to make it byte
aligned. eg for 4-bit samples, the 4 most significant bits of a byte are
used. For 12 bits sample, the 12 most significant of 2 bytes are used.
Samples are always byte aligned (ie they are not packed).
Playback: Mono/stereo 8 slin/16 slin
Armadeus
Armadeus is a simple Archimedes format. Its only variable is the playback
frequency (stored as the sample period in microseconds in the first byte
of the file). The format is fixed as 8-bit linear signed (ie 2's
complement). The only way to identify these samples is by file type as no
charactersing information is stored in the file.
Playback: Mono 8 (ie yes!)
ARMovie
ARMovie is the soundtrack part of Acorn Replay files.
Channels: mono or stereo
Format: linear signed or unsigned (8 or 16 bit) or 8-bit VIDC
Playback: Mono/stereo 8/16/VIDC (but only if the data is continuous. Sound
is normally interleaved with video data so generally only sound-only
ARMovies can be played.)
Sun Audio
This format originated on Unix computers. 8khz mu-law is a very common
sub-format for this although it can support many (only a couple of which
are supported by SoundCon).
Channels: Any number of channels can be represented (in theory, up to
2^32). SoundCon can read up to 4 channels and write up to 2.
Bits: This depends on the format. 8, 16, 24 or 32 can be represented.
Format: Sun Audio now supports a large number of formats. Basically there
is 8-bit, 8-bit A-law, compressed samples and various representations of
8, 16, 24 and 32-bit linear samples. SoundCon can read 8-bit mu-law, 8-bit
A-law and 8, 16, 24 and 32-bit linear samples with up to 4 channels. It can
write 8-bit mu-law, 8-bit A-law 8 and 16-bit linear samples with up to 2
channels.
Playback: Mono/stereo 8 slin/16 slin/u-law/A-law
Datavox
This is an Acorn specific format supporting most standard formats. Stereo
and/or 16-bit samples have their bytes in different parts of file which
makes this format difficult, and hence slow, for SoundCon to handle
(SoundCon was designed for interleaved samples). Formats 1, 2 and 3 are
recognised but saving is always done in format 3.
Channels: mono or stereo (format 3 only).
Bits: 8 or 16 (format 3 only).
Format: VIDC, mu-law, s-lin 8/16 and u-lin 8/16. The 16-bit formats are
only supported in format 3.
Playback: Although SoundCon can play all of the supported formats, only the
high byte of 16-bit samples and the left channel of stereo samples is used.
This is because the bytes are not interleaved and the PlaySample module
needs them to be.
Psion S3a
This format is used on the Psion portable computers. It has a rigid format
and there are no variables whatsoever. It is fixed at mono 8-bit A-law at
8kHz.
Channels: 1
Bits: 8
Format: A-law
Playback: mono A-law
AudioWorks
This is a versatile Archimedes format based on the Acorn Chunk File
Format.
Channels: Up to 255 channels in theory. SoundCon can read up to 4 channels
and write up to 2. Note that for polyphonic samples samples are
interleaved in blocks of 8.
Bits: 8, 12 or 16 bits for linear formats, 8-bits for the others.
Format: Linear signed, Linear unsigned, mu-law, A-law and Archimedes VIDC.
Playback: Mono/stereo 8/16/u-law/A-law/VIDC
IFF/8SVX
This is a cousin of Audio IFF (they both use the IFF chunk format) that
specifically holds 8-bit mono samples (usually instrument voices). It
supports section repeating and data compression; neither of which are
supported by SoundCon.
Playback: Mono 8 slin (ie yes)
VOC
The Creative Voice format (VOC) is a PC sourced format similar to 8SVX. It
can represent silence blocks, repeat blocks and compression. SoundCon can
only handle trivial VOCs currently - mainly because I haven't been able to
find any reliable information on this format.
Playback: Mono 8 ulin. If the sample is made up of continued blocks there
will be clicking in the playback (which SoundCon warns you of). This will
not be present when it is converted to another format.
Voice module
Voice modules are basically self-playing samples; they are stored in the
mono VIDC format. The module provided a single command; Splay_xxx where
xxx is the filename given when saved. Executing this command causes the
module to claim a sound channel, play the sound at the originally
sampled rate and release the channel when its finished. This is a
transient playback since it only attaches itself to the sound system
temporarily.
There are three option sets provided by SoundCon:
Transient/voice: A voice attaches itself to the system voice list when it
is loaded so that it can be subsequently assigned to a sound channel and
played. A transient voice does not declare itself as a voice and can only
be used by issuing a star command.
Fixed/variable frequency: Variable frequency sounds are normal instrument
sounds that can have their pitch altered by the sound command. Fixed
frequency mode is useful for 'effect' samples where the idea is to
reproduce the original sound. In this case, the sample is played the
sampled frequency and cannot be altered at play time.
Volume mode: There are four volume modes:
- Normal vol: The volume is controlled as normal by the channel volume in
the sound command and by the overall system volume.
- Sys vol: The channel volume in the sound command is ignored (maximum is
used) so only the overall system volume affects the volume.
- Channel vol: The overall system volume is ignored (works as if it was
maximised) and the volume is controlled solely by the sound command.
- Fixed vol: All volume settings are ignored. The volume used is that of
playback slider in SoundCon when you initiate the save.
Playback: Since this is a write-only format, SoundCon itself cannot play
voice modules. They are self-playing.
RIFF WAVE
The WAVE format is one of the many supported chunks in the RIFF 'chunked'
file format which supports a wide range of sound sub-formats. This format
originated on PCs so multi-byte numbers are little endian.
Channels: Usually one or two supported although up to 65535 could
theoretically be stored. SoundCon can read up to 4 channels and write up
to 2.
Bits: Depends on the format (4, 8 or 16).
Format: WAVE supports numerous formats many of which are difficult to find
information about. The ones supported by SoundCon are:
PCM: 8 bit linear unsigned or 16 bit signed, mono or stereo.
mu-law: 8-bit logarithmic format, mono or stereo.
A-law: 8-bit pseudo logarithmic format, mono or stereo.
MS ADPCM: 4-bit Microsoft ADPCM, mono or stereo.
DVI ADPCM: 4-bit Intel ADPCM, mono or stereo.
Playback: mono/stereo 8/16/mu-law/A-law/MSADPCM/DVI ADPCM (ie all those
recognised)
ADPCM formats
=============
ADPCM (Adaptive Delta Pulse Code Modulation) is a way of storing sound in a
compressed format. It is not an algorithm per se but simply says that the
sound samples are encoded in some way using the differences between samples
(ie deltas). Pulse Code Modulation (PCM) is basically a fancy way of saying
'digitised sound'. There are many different ADPCM algorithms and SoundCon
supports the only two I could find information on.
Sound is typically very difficult to compress and standard compression
techniques like LZH will maybe save 25% if you're lucky. ADPCM algorithms
are lossy (imperfect) compression techniques garanteed to give a highish
compression ratio. Usually samples are stored as 4-bit encoded deltas (75%
saving on 16-bit samples) and the quality is good, though not perfect;
rather like JPEG picture compression.
Because ADPCM algorithms rely on local trends in the sound wave to predict
what the next sample will be, they do not encode noisy sounds (having a
random element) very well. They do well on things like large music files.